Визуальное моделирование
Проект 1: Модель термостата
Принципы пропорционально-интегрального регулирования
В разделе 5 мы рассматривали дифференциальное уравнение первого порядка, моделирующее охлаждение тела. Это уравнение может отражать динамику температуры в доме. Для поддержания в доме комфортной температуры используется регулятор, работа которого основана на значениях текущей и желаемой температур. Поскольку большинство регуляторов являются цифровыми, их часто моделируют как дискретные системы.
Регулятор измеряет ошибку (разность между текущей и желаемой температурами) и посылает управляющий сигнал, основанный на этой ошибке. Например, простейшей стратегией регулирования могло бы быть включение обогревателя, если в доме холодно, и выключение, если в нем жарко. В результате получится желаемая температура, но с большими колебаниями.
Вместо этого вы можете задать выходной сигнал регулятора, пропорциональный ошибке. Например, если температура уже близка к заданному значению, то требуется лишь немного увеличить количество подаваемого тепла (или можно ничего не менять). Если же разница температур велика, то нагреватель должен быть включен на максимальную мощность.
В результате в доме сохраняется гораздо более стабильная температура, но, скорее всего, она никогда в точности не будет равна заданному значению. Чтобы решить эту проблему, вы также можете рассмотреть накопившуюся ошибку с течением времени. Это делается путем интегрирования ошибки и увеличения интенсивности регулятора, если накопленная ошибка имеет тенденцию нарастать. Этот тип регулирования называется пропорционально-интегральным, или ПИ-регулированием. В этом проекте вы будете моделировать дискретную систему, представляющую собой ПИ-регулятор.
Моделирование ПИ-регулятора
Уравнения пропорционально-интегрального регулятора представлены ниже:
где – пропорциональный член:
– интегральный член:
Здесь – шаг дискретизации (время выборки), и – константы, – ошибка регулирования.
✏️Задание 1
- Откройте модель
Глава_6_Модель.engee.
Значение 22 блока Константа представляет собой желаемую температуру (в градусах Цельсия), которую должен поддерживать регулятор.
Сигнал meas_temp представляет собой измеренную температуру в доме.
Выход блока Коэффициент усиления () представляет собой произведение , т.е. пропорциональный член .
В модели содержится несколько подсистем. Чтобы зайти в подсистему, дважды нажмите на нее. Обратный переход легче всего осуществить через меню вверху экрана, где находится строка навигации по иерархии моделей.
Подсистема Дом состоит из следующих блоков:
В свою очередь, подсистема Нагреватель имеет следующую структуру:
А подсистема Комната устроена следующим образом:
- Добавьте в модель блок Коэффициент усиления. В окне настроек блока задайте значения коэффициента усиления
Ki*Ts. Соедините выход блока Сложение (сигналe_k) со входом блока Коэффициент усиления.
Таким образом вы создадите сигнал .
Решение
✏️Задание 2
Добавьте в модель блок Запаздывание на шаг для моделирования слагаемого в уравнении интегратора. Расположите его выше добавленного ранее блока Коэффициент усиления и пока не соединяйте с другими блоками.
Решение
✏️Задание 3
- Добавьте в модель блок Сложение для того, чтобы найти сумму двух слагаемых в уравнении интегратора.
- Соедините выходы блоков Коэффициент усиления (
Ki*Ts) и Запаздывание на шаг со входами блока Сложение, чтобы на выходе получить сигнал :
Решение
✏️Задание 4
Смоделируйте выход регулятора, который является суммой пропорционального и интегрального членов
- Добавьте в модель еще один блок Сложение. Подсоедините ко входам блока Сложение сигналы (выход блока Коэффициент усиления
Kp) и (выход блока Сложение, добавленного в предыдущем Задании), чтобы получить сигнал . - Соедините выход нового блока Сложение (сигнал ) со входом подсистемы
Дом. - Создайте ответвление от сигнала и соедините его со входом блока Запаздывание на шаг.
- Залогируйте сигнал
meas_tempна выходе блокаДом.
Решение
✏️Задание 5
Последние шаги в моделировании дифференциального уравнения – задание времени выборки и начального условия.
- Задайте значения констант и равными
0.01, а значение константы равным1.0. Для этого в командной строке Engee задайте значения переменных командой
Kp = Ki = 0.01; Ts = 1;
- В окне настроек блока Запаздывание на шаг задайте значение параметра Период дискретизации равным
0.01. Начальное условие оставьте равным0. - Запустите модель и постройте график залогированного сигнала.
Решение
С течением времени колебания температуры уменьшаются и температура выходит на постоянное значение градуса.
Итак, вы смоделировали пропорционально-интегральный регулятор в Engee. Попробуйте изменить значения параметров , и и посмотрите, как они влияют на выход регулятора.
Вы можете менять параметры модели прямо в окне переменных.